package net.sk.china.city.mapper;

import java.math.BigDecimal;
import java.util.List;
import net.sk.china.city.domain.ArSupermarketProduct;
import net.sk.china.city.domain.vo.SupermarketProductInfoVO;
import net.sk.china.city.domain.vo.SupermarketProductVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

/**
 * 超市商品管理Mapper接口
 * 
 * @author gxf'
 * @date 2024-03-27
 */
@Mapper
public interface ArSupermarketProductMapper extends BaseMapper<ArSupermarketProduct>
{
    /**
     * 查询超市商品管理
     * 
     * @param id 超市商品管理主键
     * @return 超市商品管理
     */
    public SupermarketProductInfoVO selectArSupermarketProductById(Long id);

    /**
     * 查询超市商品管理列表
     * 
     * @param arSupermarketProduct 超市商品管理
     * @return 超市商品管理集合
     */
    public List<SupermarketProductVO> selectArSupermarketProductList(ArSupermarketProduct arSupermarketProduct);

    /**
     * 新增超市商品管理
     * 
     * @param arSupermarketProduct 超市商品管理
     * @return 结果
     */
    public int insertArSupermarketProduct(ArSupermarketProduct arSupermarketProduct);

    /**
     * 修改超市商品管理
     * 
     * @param arSupermarketProduct 超市商品管理
     * @return 结果
     */
    public int updateArSupermarketProduct(ArSupermarketProduct arSupermarketProduct);

    /**
     * 删除超市商品管理
     * 
     * @param id 超市商品管理主键
     * @return 结果
     */
    public int deleteArSupermarketProductById(Long id);

    /**
     * 批量删除超市商品管理
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteArSupermarketProductByIds(Long[] ids);

    /**
     * 销量前五商品
     * @param platformId
     * @return
     */
    List<ArSupermarketProduct> SupermarketRank(String platformId);

    /**
     * 获得总库存量
     * @return
     */
    @Select("select sum(inventory) from ar_supermarket_product")
    int selectTotalProductNum();

    /**
     * 获得总价值
     * @return
     */
    @Select("select sum(inventory * integrated_worth) from ar_supermarket_product")
    BigDecimal selectTotalProductValue();

    /**
     * 获得销售量前十的商品
     * @return
     */
    List<SupermarketProductVO> selectHotExchangeProductList();
}
